#include<cstdio>
#include<cstring>
int w[301][301],f[301][31],a[301];
int n,p;
const int MAXINT=2100000000;
int abs(int x)
{
	if(x<0)return -1*x;
	return x;
}
int min(int x,int y)
{
	return x<y?x:y;
}
void init()
{
	freopen("test.in","r",stdin);
	scanf("%d%d",&n,&p);
	for(int i=1;i<=n;i++)
		scanf("%d",&a[i]);
	memset(w,0,sizeof(w));
	for(int i=1;i<=n-1;i++)
		for(int j=i+1;j<=n;j++)
		{
			int x=(i+j)/2;
			for(int k=i;k<=j;k++)
			w[i][j]+=abs(a[k]-a[x]);
		}
	for(int i=1;i<=n;i++)
	{
		f[i][1]=w[1][i];
		f[i][i]=0;
	}
}
void dp()
{
	for(int i=3;i<=n;i++)
		for(int j=2;j<=min(i-1,p);j++)
		{
			f[i][j]=MAXINT;
			for(int k=j-1;k<i;k++)
				f[i][j]=min(f[i][j],f[k][j-1]+w[k+1][i]);
		}
	printf("%d\n",f[n][p]);
}

int main()
{
	init();
	dp();
	return 0;
}
	

